package repository

import (
	"context"
	"ruoyi-go-echo-ddd/internal/domain/model"
	"ruoyi-go-echo-ddd/internal/infrastructure/http/request"
)

// SysPostRepository 岗位信息Repository接口
type SysPostRepository interface {
	Insert(ctx context.Context, sysPost *model.SysPost) (*model.SysPost, error)
	Update(ctx context.Context, sysPost *model.SysPost) (int64, error)
	BatchInsert(ctx context.Context, list []*model.SysPost) ([]int64, error)
	SelectById(ctx context.Context, id int64) (*model.SysPost, error)
	SelectPage(ctx context.Context, param *request.PostPageParam) ([]*model.SysPost, int64, int64, error)
	BatchDelete(ctx context.Context, ids []any) (int64, error)
	SelectPostIdsByUserId(ctx context.Context, userId int64) ([]int64, error)
	SelectPostNameListByIds(ctx context.Context, ids []int64) ([]string, error)
	SelectAll(ctx context.Context) ([]*model.SysPost, error)
	DeleteByUserId(ctx context.Context, userId int64) (int64, error)
	DeleteByUserIdList(ctx context.Context, userIds []int64) (int64, error)
}
